perm filename SYNSUB.FAI[PIX,HPM]7 blob sn#355079 filedate 1978-05-15 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00013 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002		TITLE SYNSUB
C00003 00003	HELPER:	OUTSTR	[ASCIZ \
C00007 00004	NOCHAN:
C00009 00005	FILNM:
C00011 00006	FONTNO:	POP	P,RETAD
C00013 00007	FEWCHN:
C00014 00008	CRLF:	OUTSTR	[ASCIZ \
C00015 00009	FIRST:	SKIPN	FIRF
C00016 00010	FIRST1:	SKIPN	FIRF1
C00017 00011	FIRST2:	SKIPN	FIRF2
C00018 00012	FIRST3:	SKIPN	FIRF3
C00019 00013		END
C00020 ENDMK
C⊗;
	TITLE SYNSUB
	ENTRY	HELPER,NOCHAN,FEWCHN,FIRST1,FIRST2,FIRST3,FIRST,CRLF
	ENTRY	FILNM,FONTNO

P←17 ↔ A←1 ↔ B←2 C←3 ↔ D←4

RETAD:	0
RETAD1:	0
ESS:	0
	0
SING:	ASCIZ \ is\
PLUR:	ASCIZ \s are\


NUMOUT: POP	P,RETAD1
	POP	P,A
	PUSH	P,RETAD1
	MOVE	0,SING
	CAIE	A,1
	MOVE	0,PLUR
	MOVEM	0,ESS

outdec:	jumpge a,outde1
	push p,a
	movei a,"-"
	outchr a
	pop p,a
	movn a,a
outde1:	idivi a,12
	hrlm b,(p)
	skipe a
	pushj p,outdec
	hlrz a,(p)
	addi a,"0"
	outchr a
	popj p,
HELPER:	OUTSTR	[ASCIZ \
XGPSYN displays files on the video synthesizer, imitating the XGP.  It can
fill the screen with 1/2, 1 or 2 pages at time.

Tell it which file you want to look at, either in the command line (R
XGPSYN;FILENAME) or in answer to the FILE: question, and any spooler style
switches, such as /FONT=BASL30 (.XGP files already contain all necessary
switches).  The page number questions can be answered with the page you
want to view, any additional spooler switches, or one of the following
commands:

	H	Half density. Next display will be 1/2 page/screen.
	F	Full density. 1 page/screen.
	D	Double density. 2 pages/screen.

	V	view. Redraw the last display.
        W	negate subsequent displays. B/W → W/B and W/B → B/W.
	K	kill. Erase the synthesizer.
	Q	quit. Exit program and load line editor with XS command.

	O	output the last display as a hand/eye picture file.
	B	Bitwise density. Next display will be suitable for XGPing.
	T	Transposed bitwise density. Sideways B.
	E	Enormous density. Next display can be sent expanded to XGP.
	X	XGP output the last B,T or E display.
	L	list file in B dens. Slower and more tolerant than XSPOOL.
	S	use own channel instead of video synth. repeat to restore.

Notes:  The video synthesizer is a video rate D/A driven by data disc
channels 30 through 37. H density requires 3 of these channels, F needs 4
and D wants 5. These are rarely available during heavy system load. It
takes about 7 CPU seconds to compose a single page.
\]
	POPJ	P,
NOCHAN:
	OUTSTR	[ASCIZ \No synthesizer channels are available.
Perhaps you should give up.

\]
	POPJ	P,
FILNM:
	OUTSTR	[ASCIZ \FILE NAME\]
	POPJ	P,
FONTNO:	POP	P,RETAD
	OUTSTR	[ASCIZ \FONT#\]
	PUSHJ	P,NUMOUT
	OUTSTR	[ASCIZ	\=\]
	JRST	@RETAD
FEWCHN:
	POP	P,RETAD
	OUTSTR	[ASCIZ \
Only \]
	PUSHJ	P,NUMOUT
	OUTSTR	[ASCIZ	\ synthesizer channel\]
	OUTSTR	ESS
        OUTSTR	[ASCIZ \ available, display will be ugly.

\]
	JRST	@RETAD
CRLF:	OUTSTR	[ASCIZ \
\]
	POPJ	P,
FIRST:	SKIPN	FIRF
	OUTSTR	[ASCIZ \
(or <cr> for next window,
 H,F,D to change density,
 V to redraw, K to erase, Q to quit,
 B,T,E,W,X,L or spooler switches)\]
	AOS	FIRF
	POPJ	P,

FIRF:	0
FIRST1:	SKIPN	FIRF1
	OUTSTR	[ASCIZ \
(eg. 3.5 for p3 bottom [or 2-1.5 if no formfeeds])\]
	AOS	FIRF1
	POPJ	P,

FIRF1:	0
FIRST2:	SKIPN	FIRF2
	OUTSTR	[ASCIZ \ <esc>47S to view\]
	AOS	FIRF2
	POPJ	P,

FIRF2:	0
FIRST3:	SKIPN	FIRF3
	OUTSTR	[ASCIZ \(and any switches)\]
	AOS	FIRF3
	POPJ	P,

FIRF3:	0
	END